List all files in directory in Python

您所在的位置:网站首页 python list files in a directory guide List all files in directory in Python

List all files in directory in Python

2023-07-17 03:00| 来源: 网络整理| 查看: 265

List all files in directory in Python

In this article, we will learn how to list all files in the given directory in Python. We will use some built-in functions, different modules available in Python to search and list all files in the specified directory or current directory. Let's first have a quick look over the introduction to the directory and what modules we will study to list all files in Python.

Directory in Python

A directory is similar to a folder where unit organizational structuring occurs for storing and locating files. Python supports a number of APIs and modules to list the directory contents. We will look at the following modules to list all the files in the directory.

os module glob module List all files using the os module

Under the os module, we can use several methods to get a list of files of a directory in Python.

os.listdir() os.walk() os.scandir() os.path.isfile()

Example: List all files using the os.listdir() Method

This method returns the list of all files present in a specified directory. Linux users can get the list of files by using the standard ls command on the Linux terminal.

import os # pass the path of the directory path = 'C:/Users/Yukti/Desktop/test' files = os.listdir(path) print(files)

['filename.txt', 'oldpas.class', 'oldpas.java']

Example: List all files using os.walk() Method

This method is used to list all files in a recursive manner. It lists file names in a directory tree. Using os.walk(), the user traverses each subdirectory within a directory and extracts the files in a top-down manner.

# import module import os #pass the path of the directory path = "C:/Users/Yukti/Desktop/test" #to store files in a list list = [] #dirs = directories for (root, dirs, file) in os.walk(path): for f in file: print(f)

filename.txt oldpas.class oldpas.java

Example: List all files using os.scandir() Method

This method is supported in Python 3 and above. Please check your version before using this method. This method scans the directory and returns an iterator of os.DirEntry objects corresponding to entries in it.

# import module import os #path of the directory path="C:/Users/Yukti/Desktop/test" object = os.scandir(path) for x in object: if(x.is_dir() or x.is_file()): print(x.name)

filename.txt oldpas.class oldpas.java

Example: List only files in the current directory using os.path.isfile() Method

This method extracts only the files using the path.isfile() inside the os library. This method uses a list comprehension to filter out only files.

# Import module import os path = '.' #List only files files = [f for f in os.listdir(path) if os.path.isfile(f)] #loop to print each filename separately for x in files: print(x)

assignment.docx color.docx data.yml models.xml New DOCX Document.docx Picture1.png python.py ............

Note: It does not work for other directories as the variable 'f' is not an absolute path, but a relative path to the current directory.

List all files using glob module

Under glob module we will learn:

glob.glob() glob.iglob() Example: List all files using glob.glob() Method

This module retrieves files/path names by matching them to the specified pattern. glob is mostly a filename pattern matching library, but it is also used to list items in the current directory. glob() provides some wild card operators such as "*", "?", [ranges] to make path retrieval more simple and convenient. The wildcard character '*' is used to match all the items in the current directory.

import glob # Using '*' pattern files = glob.glob('test/*.*') print('\nUsing *: ',files) files = glob.glob('test/*[0-9]*') print('Using ranges: ',files)

Using *: ['test\\filename.txt', 'test\\oldpas.class', 'test\\oldpas.java', 'test\\term1.txt'] Using ranges: ['test\\88yukt', 'test\\term1.txt']

Example: List all files using glob.iglob() Method

This method prints the list of the filenames from the specified directory.

glob.iglob(path, *, recursive=False)

import glob # Using '*' pattern files = glob.iglob('test/*.*',recursive=True) for x in range(4): print(next(files))

test\filename.txt test\oldpas.class test\oldpas.java test\term1.txt

Conclusion

In this article, we learned multiple ways and the most convenient methods of listing all files in the directory in Python. We learned different methods from os and glob module to list all files in a directory.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3